/*
 * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
 * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
 */
package com.yxw.live_vod_backend_boot.controller;

import com.yxw.live_vod_backend_boot.entity.YxLiveShopPunishEntity;
import com.yxw.live_vod_facade.dto.LiveShopReporManagerQueryDTO;
import com.yxw.live_vod_facade.dto.ManagerArrowLiveShopApplyDTO;
import com.yxw.live_vod_facade.dto.ManagerRefererLiveShopApplyDTO;
import com.yxw.live_vod_facade.dto.ManagerSendLiveQueryDTO;
import com.yxw.live_vod_facade.dto.LiveShopApplyAddressAddDTO;
import com.yxw.live_vod_facade.dto.YxLiveAppealDTO;
import com.yxw.live_vod_facade.dto.YxLiveShopPunishQueryDTO;
import com.yxw.live_vod_facade.dto.YxLiveShopReportDTO;
import com.yxw.live_vod_facade.dto.YxLiveViolationDTO;
import com.yxw.live_vod_facade.dto.YxLiveViolationQueryDTO;
import com.yxw.live_vod_facade.dto.GetliveDetailInfoDTO;
import com.yxw.live_vod_facade.dto.LiveShopApplyAddressPunishQueryDTO;
import com.yxw.live_vod_facade.dto.QueryIntIdDTO;
import com.yxw.live_vod_facade.dto.QueryLongIdDTO;
import com.yxw.live_vod_facade.dto.ShopManagerAddVirtualVisitorDTO;
import com.yxw.live_vod_facade.dto.YxLiveActivityProductsQueryDTO;
import com.yxw.live_vod_facade.dto.YxLiveShopPunishAddDTO;
import com.yxw.live_vod_facade.vo.LiveActivityProductsVO;
import com.yxw.live_vod_facade.vo.LiveShopApplyAddressPunishVO;
import com.yxw.live_vod_facade.feign.LiveManagerFeignClient;
import com.yxw.yxnet_cd_center.common.utils.BaseResult;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiResponse;
import io.swagger.annotations.ApiResponses;
import javax.servlet.http.HttpServletRequest;
import javax.validation.Valid;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
@RestController
@Api(value = "系统管理员直播后台管理", tags = "系统管理员直播后台管理")
@Slf4j
@RequestMapping("/api/backend/noticeType")
public class LiveManagerProcessController {

    @Autowired
    private LiveManagerFeignClient oLiveManagerFeignClient;
    /**
     * 管理员同意店铺开通直播权限
     * @param ManagerArrowLiveShopApplyDTO
     * @return BaseResult
     */  
    @ApiOperation(value ="管理员同意店铺开通直播权限", notes = "此接口用于管理员同意店铺开通直播权限")
    @PostMapping("/api/live/feign/yxlivemanager/managerArrowLiveShopApply")    
    public BaseResult managerArrowLiveShopApply(@RequestBody @Valid ManagerArrowLiveShopApplyDTO oManagerArrowLiveShopApplyDTO)
    {
        return oLiveManagerFeignClient.managerArrowLiveShopApply(oManagerArrowLiveShopApplyDTO);
    }

    /**
     * 管理员拒绝店铺开通直播权限
     * @param ManagerRefererLiveShopApplyDTO
     * @return BaseResult
     */
    @ApiOperation(value ="管理员拒绝店铺开通直播权限", notes = "此接口用于管理员拒绝店铺开通直播权限")
    @PostMapping("/api/live/feign/yxlivemanager/managerRefererLiveShopApply")     
    public BaseResult managerRefererLiveShopApply(@RequestBody @Valid ManagerRefererLiveShopApplyDTO oManagerRefererLiveShopApplyDTO)
    {
        return oLiveManagerFeignClient.managerRefererLiveShopApply(oManagerRefererLiveShopApplyDTO);
    }

     /**
     * 管理员查询直播
     * @param oManagerSendLiveQueryDTO
     * @return BaseResult
     */ 
    @ApiOperation(value = "直播流_管理员查询直播")
    @ApiResponses({@ApiResponse(code = 200,message = "OK",response = LiveShopApplyAddressAddDTO.class),})    
    @PostMapping(value = "/api/live/feign/yxlivemanager/managerSendLiveQuery")    
    public BaseResult managerSendLiveQuery(@RequestBody @Validated ManagerSendLiveQueryDTO oManagerSendLiveQueryDTO)
    {
        return oLiveManagerFeignClient.managerSendLiveQuery(oManagerSendLiveQueryDTO);
    }
    /*** 
    * 管理员自定义分页查询历史及处罚流明细
    * @param oLiveShopApplyAddressPunishDTO
    * @return Page
    **/
    @ApiOperation(value ="直播流_管理员自定义分页查询历史及处罚流明细",notes = "此接口用于管理员自定义分页查询历史及处罚流明细")
    @ApiResponses({@ApiResponse(code = 200,message = "OK",response = LiveShopApplyAddressPunishVO.class),})
    @PostMapping("/liveShopApplyAddressPunishSelectPage")
    public BaseResult liveShopApplyAddressPunishSelectPage(@RequestBody @Valid LiveShopApplyAddressPunishQueryDTO oLiveShopApplyAddressPunishQueryDTO)
    {
        return oLiveManagerFeignClient.liveShopApplyAddressPunishSelectPage(oLiveShopApplyAddressPunishQueryDTO);
    }
    /*** 
    * 管理员自定义不分页查询历史及处罚流明细
    * @param oLiveShopApplyAddressPunishDTO
    * @return List<LiveShopApplyAddressPunishVO>
    **/
    @ApiOperation(value ="直播流_管理员自定义不分页查询历史及处罚流明细",notes = "此接口用于管理员自定义不分页查询历史及处罚流明细")
    @ApiResponses({@ApiResponse(code = 200,message = "OK",response = LiveShopApplyAddressPunishVO.class),})
    @PostMapping("/liveShopApplyAddressPunishSelectList")
    public BaseResult liveShopApplyAddressPunishSelectList(@RequestBody @Valid LiveShopApplyAddressPunishQueryDTO oLiveShopApplyAddressPunishQueryDTO)
    {
        return oLiveManagerFeignClient.liveShopApplyAddressPunishSelectList(oLiveShopApplyAddressPunishQueryDTO);
    }       
    /*** 
    * 根据liveId查找直播详情
    * @param liveId
    * @return LiveShopApplyAddressEntity
    **/
    @ApiOperation(value ="直播流_根据liveId查找直播详情",notes = "此接口用于根据liveId查找直播详情")
    @ApiResponses({@ApiResponse(code = 200,message = "OK",response = LiveShopApplyAddressAddDTO.class),})
    @PostMapping("/getliveDetailInfo")
    public BaseResult getliveDetailInfo(@RequestBody @Validated GetliveDetailInfoDTO oGetliveDetailInfoDTO)
    {
        return BaseResult.success(oLiveManagerFeignClient.getliveDetailInfo(oGetliveDetailInfoDTO));
    }    
    /*** 
    * 增加违规条例
    * @param oYxLiveViolationDTO
    * @return BaseResult
    **/
    @ApiOperation(value ="新增违规条例(YxLiveViolation)", notes = "此接口用于新增违规条例")
    @PostMapping("/api/live/feign/yxlivemanager/addYxLiveViolation")
    public BaseResult addYxLiveViolation(@RequestBody @Valid YxLiveViolationDTO oYxLiveViolationDTO)
    {
        return oLiveManagerFeignClient.addYxLiveViolation(oYxLiveViolationDTO);
    }
    /*** 
    * 修改违规条例
    * @param oYxLiveViolationDTO
    * @return BaseResult
    **/
    @ApiOperation(value ="修改违规条例(YxLiveViolation)",notes = "此接口用于修改违规条例信息")
    @PostMapping("/api/live/feign/yxlivemanager/editYxLiveViolation")
    public BaseResult editYxLiveViolation(@RequestBody @Valid YxLiveViolationDTO oYxLiveViolationDTO)
    {
        return oLiveManagerFeignClient.editYxLiveViolation(oYxLiveViolationDTO);
    }
    /*** 
    * 删除违规条例
    * @param id
    * @param oYxLiveViolationDTO
    * @return BaseResult
    **/
    @ApiOperation(value ="删除违规条例YxLiveViolation",notes = "此接口用于删除违规条例信息")
    @PostMapping("/api/live/feign/yxlivemanager/removeYxLiveViolation")
    public BaseResult removeYxLiveViolation(@RequestBody @Valid QueryIntIdDTO oQueryIntIdDTO)
    {
        return oLiveManagerFeignClient.removeYxLiveViolation(oQueryIntIdDTO);
    }
    /*** 
    * 根据id查找违规条例
    * @param id
    * @param oYxLiveViolationDTO
    * @return YxLiveViolationEntity
    **/
    @ApiOperation(value ="根据id查找违规条例",notes = "此接口用于根据id查找违规条例信息")
    @PostMapping("/api/live/feign/yxlivemanager/getYxLiveViolationInfo")
    public BaseResult getYxLiveViolationInfo(@RequestBody @Valid QueryIntIdDTO oQueryIntIdDTO)
    {
        return oLiveManagerFeignClient.getYxLiveViolationInfo(oQueryIntIdDTO);
    }
    /*** 
    * 自定义分页查询违规条例
    * @param currentPage 当前页
    * @param pageSize 分页大小
    * @param oYxLiveViolationDTO
    * @return Page
    **/
    @ApiOperation(value ="自定义分页查询违规条例",notes = "此接口用于自定义分页查询违规条例信息")
    @PostMapping("/api/live/feign/yxlivemanager/selectYxLiveViolationPage")
    public BaseResult selectYxLiveViolationPage(@RequestBody @Valid YxLiveViolationQueryDTO oYxLiveViolationQueryDTO)
    {
        return oLiveManagerFeignClient.selectYxLiveViolationPage(oYxLiveViolationQueryDTO);
    }
    /*** 
    * 自定义不分页查询违规条例
    * @param oYxLiveViolationDTO
    * @return List<YxLiveViolationEntity>
    **/
    @ApiOperation(value ="自定义不分页查询违规条例",notes = "此接口用于自定义不分页查询违规条例信息")
    @PostMapping("/api/live/feign/yxlivemanager/selectYxLiveViolationList")
    public BaseResult selectYxLiveViolationList(@RequestBody @Valid YxLiveViolationQueryDTO oYxLiveViolationQueryDTO)
    {
        return oLiveManagerFeignClient.selectYxLiveViolationList(oYxLiveViolationQueryDTO);
    }
    /*** 
    * 自定义统计违规条例
    * @param oYxLiveViolationDTO
    * @return int
    **/
    @ApiOperation(value ="自定义统计违规条例",notes ="此接口用于自定义统计违规条例记录条数")
    @PostMapping("/api/live/feign/yxlivemanager/selectYxLiveViolationCount")
    public BaseResult selectYxLiveViolationCount(@RequestBody @Valid YxLiveViolationQueryDTO oYxLiveViolationQueryDTO)
    {
        return oLiveManagerFeignClient.selectYxLiveViolationCount(oYxLiveViolationQueryDTO);
    }
    /*** 
    * 管理员受理举报记录
    * @param oYxLiveShopReportDTO
    * @return BaseResult
    **/
    @ApiOperation(value ="管理员审核举报记录",notes = "此接口用于管理员审核举报记录")
    @PostMapping("/api/live/feign/yxlivemanager/managerHandleLiveShopReport")
    public BaseResult managerHandleLiveShopReport(@RequestBody @Valid YxLiveShopReportDTO oYxLiveShopReportDTO)
    {
        return oLiveManagerFeignClient.managerHandleLiveShopReport(oYxLiveShopReportDTO);
    }
    /*** 
    * 管理员处理店铺申诉 
    * @param oYxLiveAppealDTO
    * @return BaseResult
    **/
    @ApiOperation(value ="修改店铺申诉 (YxLiveAppeal)",notes = "此接口用于修改店铺申诉 信息")
    @ApiResponses({@ApiResponse(code = 200,message = "OK",response = BaseResult.class),})
    @PostMapping("/api/live/feign/yxlivemanager/managerHandleLiveAppeal")
    public BaseResult managerHandleLiveAppeal(@RequestBody @Valid YxLiveAppealDTO oYxLiveAppealDTO)
    {
        return oLiveManagerFeignClient.managerHandleLiveAppeal(oYxLiveAppealDTO);
    }

    /*** 
    * 管理员查询店铺被举报记录
    * @param currentPage 当前页
    * @param pageSize 分页大小
    * @param oYxLiveShopReportDTO
    * @return Page
    **/
    @ApiOperation(value ="管理员查询店铺被举报记录",notes = "此接口用于管理员查询店铺被举报记录")
    @PostMapping("/api/live/feign/yxlivemanager/managerQuewryLiveShopReportPage/{currentPage}/{pageSize}")
    public BaseResult managerQuewryLiveShopReportPage(@RequestBody @Valid LiveShopReporManagerQueryDTO oLiveShopReporManagerQueryDTO)
    {
        return oLiveManagerFeignClient.managerQuewryLiveShopReportPage(oLiveShopReporManagerQueryDTO);
    } 
    /*** 
    * 根据id查找店铺处罚记录表
    * @param id
    * @return YxLiveShopPunishEntity
    **/
    @ApiOperation(value ="根据id查找店铺处罚记录表",notes = "此接口用于根据id查找店铺处罚记录表信息")
    @ApiResponses({@ApiResponse(code = 200,message = "OK",response = YxLiveShopPunishEntity.class),})
    @GetMapping("/getYxLiveShopPunishInfo/{id}")
    public BaseResult getYxLiveShopPunishInfo(@RequestBody @Valid QueryLongIdDTO oQueryLongIdDTO)
    {
        return oLiveManagerFeignClient.getYxLiveShopPunishInfo(oQueryLongIdDTO);
    }
    /*** 
    * 自定义分页查询店铺处罚记录表
    * @param currentPage 当前页
    * @param pageSize 分页大小
    * @param oYxLiveShopPunishDTO
    * @return Page
    **/
    @ApiOperation(value ="自定义分页查询店铺处罚记录表",notes = "此接口用于自定义分页查询店铺处罚记录表信息")
    @ApiResponses({@ApiResponse(code = 200,message = "OK",response = YxLiveShopPunishEntity.class),})
    @PostMapping("/selectYxLiveShopPunishPage/{currentPage}/{pageSize}")
    public BaseResult selectYxLiveShopPunishPage(@RequestBody @Valid  YxLiveShopPunishQueryDTO oYxLiveShopPunishQueryDTO)
    {
        return oLiveManagerFeignClient.selectYxLiveShopPunishPage(oYxLiveShopPunishQueryDTO);
    }
    /*** 
    * 自定义不分页查询店铺处罚记录表
    * @param oYxLiveShopPunishDTO
    * @return List<YxLiveShopPunishEntity>
    **/
    @ApiOperation(value ="自定义不分页查询店铺处罚记录表",notes = "此接口用于自定义不分页查询店铺处罚记录表信息")
    @ApiResponses({@ApiResponse(code = 200,message = "OK",response = YxLiveShopPunishEntity.class),})
    @PostMapping("/selectYxLiveShopPunishList")
    public BaseResult selectYxLiveShopPunishList(@RequestBody @Valid YxLiveShopPunishQueryDTO oYxLiveShopPunishQueryDTO)
    {
        return oLiveManagerFeignClient.selectYxLiveShopPunishList(oYxLiveShopPunishQueryDTO);
    }
    /*** 
    * 自定义统计店铺处罚记录表
    * @param oYxLiveShopPunishDTO
    * @return int
    **/
    @ApiOperation(value ="自定义统计店铺处罚记录表",notes ="此接口用于自定义统计店铺处罚记录表记录条数")
    @PostMapping("/selectYxLiveShopPunishCount")
    public BaseResult selectYxLiveShopPunishCount(@RequestBody @Valid YxLiveShopPunishQueryDTO oYxLiveShopPunishQueryDTO)
    {
        return oLiveManagerFeignClient.selectYxLiveShopPunishCount(oYxLiveShopPunishQueryDTO);
    } 
    /*** 
    * 自定义分页查询店铺的商品 
    * @param currentPage 当前页
    * @param pageSize 分页大小
    * @param oYxLiveActivityProductsDTO
    * @return Page
    **/
    @ApiOperation(value ="商品_自定义分页查询店铺的商品",notes = "此接口用于自定义分页查询店铺的商品 信息")
    @ApiResponses({@ApiResponse(code = 200,message = "OK",response = LiveActivityProductsVO.class),})
    @PostMapping("/liveActivityProductsSelectPage")
    public BaseResult liveActivityProductsSelectPage(@RequestBody @Valid YxLiveActivityProductsQueryDTO oYxLiveActivityProductsQueryDTO)
    {
        return oLiveManagerFeignClient.liveActivityProductsSelectPage(oYxLiveActivityProductsQueryDTO);
    }
    /*** 
    * 自定义不分页查询店铺的商品 
    * @param oYxLiveActivityProductsDTO
    * @return List<YxLiveActivityProductsEntity>
    **/
    @ApiOperation(value ="商品_自定义不分页查询店铺的商品",notes = "此接口用于自定义不分页查询店铺的商品 信息")
    @ApiResponses({@ApiResponse(code = 200,message = "OK",response = LiveActivityProductsVO.class),})
    @PostMapping("/liveActivityProductsSelectList")
    public BaseResult liveActivityProductsSelectList(@RequestBody @Valid YxLiveActivityProductsQueryDTO oYxLiveActivityProductsQueryDTO)
    {
        return oLiveManagerFeignClient.liveActivityProductsSelectList(oYxLiveActivityProductsQueryDTO);
    }
    /*** 
    * 管理员处罚店铺
    * @param oYxLiveShopPunishDTO
    * @return BaseResult
    **/
    @ApiOperation(value ="管理员处罚店铺",notes = "管理员处罚店铺")
    @ApiResponses({@ApiResponse(code = 200,message = "OK",response = YxLiveShopPunishEntity.class),})
    @PostMapping("/managerPunishLiveShop")
    public BaseResult managerPunishLiveShop(@RequestBody @Valid YxLiveShopPunishAddDTO oYxLiveShopPunishAddDTO)
    {
        return oLiveManagerFeignClient.managerPunishLiveShop(oYxLiveShopPunishAddDTO);
    } 
    /*** 
    * 系统管理员添加虚拟浏览人数到直播流
    * @param QueryStringIdDTO
    * @return int
    **/
    @ApiOperation(value ="直播_系统管理员添加虚拟浏览人数到直播流",notes ="此接口用于系统管理员添加虚拟浏览人数到直播流")
    @PostMapping("/systemManagerAddVirtualVisitor")
    public BaseResult systemManagerAddVirtualVisitor(HttpServletRequest httpRequest,@RequestBody  @Validated ShopManagerAddVirtualVisitorDTO oShopManagerAddVirtualVisitorDTO)
    {
        return oLiveManagerFeignClient.systemManagerAddVirtualVisitor(oShopManagerAddVirtualVisitorDTO);
    }      
}
